
#include "../../MR88FX02_BSP_V1.h"

#ifndef CHIP_H
#define CHIP_H

//Key
#define IO_Key1 PORT_A_8
#define IO_Key2 PORT_A_10
#define IO_Key3 PORT_A_6
#define IO_KeyLed PORT_A_5 
#define IO_Mode_Key1 MR88FX02_Gpio_Set_Mode(IO_Key1,INPUT); 
#define IO_Mode_Key2 MR88FX02_Gpio_Set_Mode(IO_Key2,INPUT); 
#define IO_Mode_Key3 MR88FX02_Gpio_Set_Mode(IO_Key3,INPUT); 
#define IO_Mode_KeyLed MR88FX02_Gpio_Set_Mode(IO_KeyLed,OUTPUT); 
#define IO_Pull_Up_Key1 MR88FX02_Gpio_Set_Pull_Up(IO_Key1,1); //set PULL UP
#define IO_Pull_Up_Key2 MR88FX02_Gpio_Set_Pull_Up(IO_Key2,1); //set PULL UP
#define IO_Pull_Up_Key3 MR88FX02_Gpio_Set_Pull_Up(IO_Key3,1); //set PULL UP
#define IO_Read_Key1 MR88FX02_Gpio_Get(IO_Key1) //低电平有效
#define IO_Read_Key2 MR88FX02_Gpio_Get(IO_Key2)
#define IO_Read_Key3 MR88FX02_Gpio_Get(IO_Key3)
#define IO_Write_H_KeyLed MR88FX02_Gpio_Set(IO_KeyLed,1);
#define IO_Write_L_KeyLed MR88FX02_Gpio_Set(IO_KeyLed,0);


//Beep
#define IO_Buzzer PORT_A_7
#define IO_Mode_Buzzer MR88FX02_Gpio_Set_Mode(IO_Buzzer,OUTPUT); //set GPIOB14 output
#define IO_Write_H_Buzzer MR88FX02_Gpio_Set(IO_Buzzer,1);
#define IO_Write_L_Buzzer MR88FX02_Gpio_Set(IO_Buzzer,0);


//Temp
#define IO_Oven PORT_A_2
#define IO_Probe2 PORT_A_0
#define IO_Probe1 PORT_A_1
#define ADC_Channel_Oven ADC_AN2 //烤炉AD通道
#define ADC_Channel_Meat2 ADC_AN0 //肉探针2AD通道
#define ADC_Channel_Meat1 ADC_AN1 //肉探针1AD通道


#define IO_Igniter PORT_B_3 //点火风扇
#define IO_Feed PORT_B_4 //进料风扇
#define IO_Fan PORT_B_5 //排气风扇
#define IO_Mode_Igniter MR88FX02_Gpio_Set_Mode(IO_Igniter,OUTPUT);
#define IO_Mode_Feed MR88FX02_Gpio_Set_Mode(IO_Feed,OUTPUT);
#define IO_Mode_Fan MR88FX02_Gpio_Set_Mode(IO_Fan,OUTPUT);
#define IO_Write_H_Igniter MR88FX02_Gpio_Set(IO_Igniter,1);
#define IO_Write_H_Feed MR88FX02_Gpio_Set(IO_Feed,1);
#define IO_Write_H_Fan MR88FX02_Gpio_Set(IO_Fan,1);
#define IO_Write_L_Igniter MR88FX02_Gpio_Set(IO_Igniter,0);
#define IO_Write_L_Feed MR88FX02_Gpio_Set(IO_Feed,0);
#define IO_Write_L_Fan MR88FX02_Gpio_Set(IO_Fan,0);


//Switch Key
#define IO_Switch PORT_B_2
#define ADC_Channel_Switch ADC_AN4

//ADC Seq
#define ADC_Seq_Switch 0
#define ADC_Seq_Oven 1
#define ADC_Seq_Meat1 2
#define ADC_Seq_Meat2 3

//LCD
#define Lcd_Backlight PORT_A_11
#define IO_Mode_Lcd_Backlight MR88FX02_Gpio_Set_Mode(Lcd_Backlight,OUTPUT);
#define IO_Write_H_Lcd_Backlight MR88FX02_Gpio_Set(Lcd_Backlight,1);
#define IO_Write_L_Lcd_Backlight MR88FX02_Gpio_Set(Lcd_Backlight,0);
#define Lcd_Backlight_ON IO_Write_H_Lcd_Backlight
#define Lcd_Backlight_OFF IO_Write_L_Lcd_Backlight

#define LCD_Com0 PORT_B_6
#define LCD_Com1 PORT_B_7
#define LCD_Com2 PORT_B_8
#define LCD_Com3 PORT_B_9
#define LCD_Com4 PORT_B_10
#define LCD_Com5 PORT_B_11
#define LCD_Com6 PORT_B_12
#define LCD_Com7 PORT_B_13
#define LCD_Seg0 PORT_B_14
#define LCD_Seg1 PORT_C_0
#define LCD_Seg2 PORT_C_2
#define LCD_Seg3 PORT_C_3
#define LCD_Seg4 PORT_D_2
#define LCD_Seg5 PORT_D_1
#define LCD_Seg6 PORT_D_0
#define LCD_Seg7 PORT_C_12
#define LCD_Seg8 PORT_C_11
#define LCD_Seg9 PORT_C_10
#define LCD_Seg10 PORT_C_9
#define LCD_Seg11 PORT_C_8
#define LCD_Seg12 PORT_C_7
#define LCD_Seg13 PORT_C_6
#define LCD_Seg14 PORT_C_5
#define LCD_Seg15 PORT_C_4
#define IO_Mode_LCD_Com0 MR88FX02_Gpio_Set_Mode(LCD_Com0,ANALOG);
#define IO_Mode_LCD_Com1 MR88FX02_Gpio_Set_Mode(LCD_Com1,ANALOG);
#define IO_Mode_LCD_Com2 MR88FX02_Gpio_Set_Mode(LCD_Com2,ANALOG);
#define IO_Mode_LCD_Com3 MR88FX02_Gpio_Set_Mode(LCD_Com3,ANALOG);
#define IO_Mode_LCD_Com4 MR88FX02_Gpio_Set_Mode(LCD_Com4,ANALOG);
#define IO_Mode_LCD_Com5 MR88FX02_Gpio_Set_Mode(LCD_Com5,ANALOG);
#define IO_Mode_LCD_Com6 MR88FX02_Gpio_Set_Mode(LCD_Com6,ANALOG);
#define IO_Mode_LCD_Com7 MR88FX02_Gpio_Set_Mode(LCD_Com7,ANALOG);
#define IO_Mode_LCD_Seg0 MR88FX02_Gpio_Set_Mode(LCD_Seg0,ANALOG);
#define IO_Mode_LCD_Seg1 MR88FX02_Gpio_Set_Mode(LCD_Seg1,ANALOG);
#define IO_Mode_LCD_Seg2 MR88FX02_Gpio_Set_Mode(LCD_Seg2,ANALOG);
#define IO_Mode_LCD_Seg3 MR88FX02_Gpio_Set_Mode(LCD_Seg3,ANALOG);
#define IO_Mode_LCD_Seg4 MR88FX02_Gpio_Set_Mode(LCD_Seg4,ANALOG);
#define IO_Mode_LCD_Seg5 MR88FX02_Gpio_Set_Mode(LCD_Seg5,ANALOG);
#define IO_Mode_LCD_Seg6 MR88FX02_Gpio_Set_Mode(LCD_Seg6,ANALOG);
#define IO_Mode_LCD_Seg7 MR88FX02_Gpio_Set_Mode(LCD_Seg7,ANALOG);
#define IO_Mode_LCD_Seg8 MR88FX02_Gpio_Set_Mode(LCD_Seg8,ANALOG);
#define IO_Mode_LCD_Seg9 MR88FX02_Gpio_Set_Mode(LCD_Seg9,ANALOG);
#define IO_Mode_LCD_Seg10 MR88FX02_Gpio_Set_Mode(LCD_Seg10,ANALOG);
#define IO_Mode_LCD_Seg11 MR88FX02_Gpio_Set_Mode(LCD_Seg11,ANALOG);
#define IO_Mode_LCD_Seg12 MR88FX02_Gpio_Set_Mode(LCD_Seg12,ANALOG);
#define IO_Mode_LCD_Seg13 MR88FX02_Gpio_Set_Mode(LCD_Seg13,ANALOG);
#define IO_Mode_LCD_Seg14 MR88FX02_Gpio_Set_Mode(LCD_Seg14,ANALOG);
#define IO_Mode_LCD_Seg15 MR88FX02_Gpio_Set_Mode(LCD_Seg15,ANALOG);
#define IO_Write_H_LCD_Com0 MR88FX02_Gpio_Set(LCD_Com0,1);
#define IO_Write_H_LCD_Com1 MR88FX02_Gpio_Set(LCD_Com1,1);
#define IO_Write_H_LCD_Com2 MR88FX02_Gpio_Set(LCD_Com2,1);
#define IO_Write_H_LCD_Com3 MR88FX02_Gpio_Set(LCD_Com3,1);
#define IO_Write_H_LCD_Com4 MR88FX02_Gpio_Set(LCD_Com4,1);
#define IO_Write_H_LCD_Com5 MR88FX02_Gpio_Set(LCD_Com5,1);
#define IO_Write_H_LCD_Com6 MR88FX02_Gpio_Set(LCD_Com6,1);
#define IO_Write_H_LCD_Com7 MR88FX02_Gpio_Set(LCD_Com7,1);
#define IO_Write_H_LCD_Seg0 MR88FX02_Gpio_Set(LCD_Seg0,1);
#define IO_Write_H_LCD_Seg1 MR88FX02_Gpio_Set(LCD_Seg1,1);
#define IO_Write_H_LCD_Seg2 MR88FX02_Gpio_Set(LCD_Seg2,1);
#define IO_Write_H_LCD_Seg3 MR88FX02_Gpio_Set(LCD_Seg3,1);
#define IO_Write_H_LCD_Seg4 MR88FX02_Gpio_Set(LCD_Seg4,1);
#define IO_Write_H_LCD_Seg5 MR88FX02_Gpio_Set(LCD_Seg5,1);
#define IO_Write_H_LCD_Seg6 MR88FX02_Gpio_Set(LCD_Seg6,1);
#define IO_Write_H_LCD_Seg7 MR88FX02_Gpio_Set(LCD_Seg7,1);
#define IO_Write_H_LCD_Seg8 MR88FX02_Gpio_Set(LCD_Seg8,1);
#define IO_Write_H_LCD_Seg9 MR88FX02_Gpio_Set(LCD_Seg9,1);
#define IO_Write_H_LCD_Seg10 MR88FX02_Gpio_Set(LCD_Seg10,1);
#define IO_Write_H_LCD_Seg11 MR88FX02_Gpio_Set(LCD_Seg11,1);
#define IO_Write_H_LCD_Seg12 MR88FX02_Gpio_Set(LCD_Seg12,1);
#define IO_Write_H_LCD_Seg13 MR88FX02_Gpio_Set(LCD_Seg13,1);
#define IO_Write_H_LCD_Seg14 MR88FX02_Gpio_Set(LCD_Seg14,1);
#define IO_Write_H_LCD_Seg15 MR88FX02_Gpio_Set(LCD_Seg15,1);

#define IO_Write_L_LCD_Com0 MR88FX02_Gpio_Set(LCD_Com0,0);
#define IO_Write_L_LCD_Com1 MR88FX02_Gpio_Set(LCD_Com1,0);
#define IO_Write_L_LCD_Com2 MR88FX02_Gpio_Set(LCD_Com2,0);
#define IO_Write_L_LCD_Com3 MR88FX02_Gpio_Set(LCD_Com3,0);
#define IO_Write_L_LCD_Com4 MR88FX02_Gpio_Set(LCD_Com4,0);
#define IO_Write_L_LCD_Com5 MR88FX02_Gpio_Set(LCD_Com5,0);
#define IO_Write_L_LCD_Com6 MR88FX02_Gpio_Set(LCD_Com6,0);
#define IO_Write_L_LCD_Com7 MR88FX02_Gpio_Set(LCD_Com7,0);
#define IO_Write_L_LCD_Seg0 MR88FX02_Gpio_Set(LCD_Seg0,0);
#define IO_Write_L_LCD_Seg1 MR88FX02_Gpio_Set(LCD_Seg1,0);
#define IO_Write_L_LCD_Seg2 MR88FX02_Gpio_Set(LCD_Seg2,0);
#define IO_Write_L_LCD_Seg3 MR88FX02_Gpio_Set(LCD_Seg3,0);
#define IO_Write_L_LCD_Seg4 MR88FX02_Gpio_Set(LCD_Seg4,0);
#define IO_Write_L_LCD_Seg5 MR88FX02_Gpio_Set(LCD_Seg5,0);
#define IO_Write_L_LCD_Seg6 MR88FX02_Gpio_Set(LCD_Seg6,0);
#define IO_Write_L_LCD_Seg7 MR88FX02_Gpio_Set(LCD_Seg7,0);
#define IO_Write_L_LCD_Seg8 MR88FX02_Gpio_Set(LCD_Seg8,0);
#define IO_Write_L_LCD_Seg9 MR88FX02_Gpio_Set(LCD_Seg9,0);
#define IO_Write_L_LCD_Seg10 MR88FX02_Gpio_Set(LCD_Seg10,0);
#define IO_Write_L_LCD_Seg11 MR88FX02_Gpio_Set(LCD_Seg11,0);
#define IO_Write_L_LCD_Seg12 MR88FX02_Gpio_Set(LCD_Seg12,0);
#define IO_Write_L_LCD_Seg13 MR88FX02_Gpio_Set(LCD_Seg13,0);
#define IO_Write_L_LCD_Seg14 MR88FX02_Gpio_Set(LCD_Seg14,0);
#define IO_Write_L_LCD_Seg15 MR88FX02_Gpio_Set(LCD_Seg15,0);




#endif
